package com.unionpay.upyzt.resp;

import com.google.gson.annotations.SerializedName;
import com.unionpay.upyzt.consts.AcctTypeEnum;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.experimental.Accessors;

import java.util.Map;

@Getter
@Accessors(chain = true)
public class BalanceAcctItem {

    /**
     * 电子账簿 ID
     */
    private String balanceAcctId;

    /**
     * 电子账簿银行账号
     */
    private String relAcctNo;

    /**
     * 可提现余额
     */
    private Long settledAmount;

    /**
     * 在途余额
     */
    private Long pendingAmount;

    /**
     * 不可用余额
     */
    private Long expensingAmount;

    /**
     * 已清算冻结金额
     */
    private Long frozenSettledAmount;

    /**
     * 账户类型
     *
     * basic: 基本户 |
     * charge: 挂帐户 |
     * fee: 手续费户 |
     * deposit: 充值户 |
     * withdrawal: 提现在途户 |
     * guarantee: 担保户 |
     * advance: 垫资户 |
     * marketing: 营销户 |
     * bank_fund: 银行存款户 |
     */
    private AcctTypeEnum acctType;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否被冻结
     */
    @SerializedName(value = "is_frozen")
    private Boolean frozen;

    /**
     * 自定义数据
     */
    private Map<String, Object> metadata;
}
